package cn.jtcoding.cart.web.controller;

import cn.jtcoding.cart.pojo.bo.CartBO;
import cn.jtcoding.common.framework.enums.ApiResultCode;
import cn.jtcoding.common.framework.vo.ApiResult;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/cart")
public class CartController {

    @PostMapping("/add")
    public ApiResult<?> add(@RequestParam String userId, @RequestBody CartBO cartBO) {
        if (userId == null) {
            return ApiResult.failure(ApiResultCode.UNKNOWN_ERROR);
        }
        // TODO 用户在登录情况下，添加商品到购物车，会同步到redis中
        return ApiResult.success();
    }

    @PostMapping("/del")
    public ApiResult<?> del(
            @RequestParam String userId,
            @RequestParam String itemSpecId) {
        if (StringUtils.isBlank(userId) || StringUtils.isBlank(itemSpecId)) {
            return ApiResult.failure(ApiResultCode.PARAM_IS_INVALID);
        }
        // TODO 1） 购物车清空功能
//      2) 加减号 - 添加、减少商品数量
//         +1 -1 -1 = 0  =>  -1 -1 +1 = 1 (问题： 如何保证前端请求顺序执行)
        // TODO 用户在页面删除购物车中的商品数据，如果此时用户已经登录，则需要同步删除后端购物车中的商品
        return ApiResult.success();
    }
}
